Conventional technologies include a standard known as single-root input/output virtualization (SR-IOV) for PCI Express® (PCIe) devices. The SR-IOV allows multiple operating systems running simultaneously within a single computer to natively share PCIe devices by providing native input/output (IO or I/O) virtualization in PCIe topologies where there is a single root complex. The single root complex typically indicates a central processing complex with a single chipset, where the PCIe root complex resides. Therefore, SR-IOV allows multiple guest operating systems running in a virtual machine environment on a single processing complex to access multiple functions in a SR-IOV capable device.
Multi-root IOV (MR-IOV) has also been specified, which builds on SR-IOV to provide native I/O virtualization in topologies in which multiple root complexes share a PCIe hierarchy. The MR-IOV, however, requires implementation at the fabric, endpoint, and system levels that has not been realized to date.
Additionally, conventional technologies include proprietary systems that have been developed to implement IO virtualization. However, these systems do not provide native, transparent PCIe connections to the hosts and IO devices in the system and, further, require proprietary IO resource modules or drivers to run on the hosts.
Fiber Channel over Ethernet (FCoE) is another conventional technology that allows for tunneling storage traffic using a Fiber Channel protocol to be encapsulated in ethernet frames and transported on an ethernet fabric. However, extensive infrastructure replacement will be necessary to implement FCoE, like required replacement of the switching fabric, IO devices, and drivers associated with the client-server (ethernet) and storage (fiber channel) networks.
Conventional systems also include ExpressEther, which is a system architecture that provides a mechanism to transport PCIe traffic over an ethernet fabric. However, the system does not provide sharing of PCIe devices at the function level, but only serial assignment of an entire device to a given host. Moreover, the system does not provide for host-to-host communications.